<h1>About XORP</h1>

<p>
XORP is a modular, extensible, open source networking platform that
can be leveraged by:
</p>

<ul>
      <li>
	<a href="#nop">Network operators</a> wanting to reduce cost by
	running open source networking applications on off-the-shelf
	hardware.
      </li>

      <li>
	<a href="#equipment">Network equipment vendors</a> wanting to
	expand market presence for their special-purpose hardware.
      </li>

      <li>
	<a href="#appliance">Network application writers</a> vendors
	wanting to expand market presence for their special purpose
	hardware.
      </li>

      <li>
	<a href="#research">Network researchers</a> wanting a platform
	for experimentation and invention.
      </li>
</ul>

<h2><a name="nop">XORP as an Open-Source Router</a></h2>

<p>
XORP code can be downloaded and used to build a fully functional
PC-based router.  A basic implementation of XORP is also available as a
Live CD--i.e, a downloadable CD image that can be burned to a bootable CD.
This allows XORP to be run without installing any additional software,
understanding how XORP works internally, or knowing anything about
Linux/Unix system administration.
</p>

<p>
XORP has a single unified command line interface (CLI) which is
used to configure routing protocols and network interfaces. XORP's
CLI can be extended to encompass additional router functionality
such as queue manangement, QoS configuration, firewalls, NATs and
DHCP configuration. The XORP architecture also permits different
routing protocols to run in different security "sandboxes",
offering the potential for greater robustness and security than
alternative router platforms.
</p>

<p>

XORP currently supports both IPv4 and IPv6 versions of BGP4+, OSPFv2,
OSPFv3, RIP and RIPng for unicast routing, and PIM-SM and IGMP/MLD for
multicast.  XORP runs on most Linux and *BSD distributions.
Details can be found in the <a
href="releases/current/docs/BUILD_NOTES">BUILD_NOTES</a> file.
</p>

<h2><a name="equipment">XORP for Network Equipment Vendors</a></h2>

<p>
The performance of PC-based XORP implementations depends on the
forwarding capability of the underlying hardware.  For
environments and applications requiring higher bandwidth or
greater speed, XORP can be used as a software stack for
controlling advanced hardware forwarding planes.  Its Forwarding
Engine Abstraction (FEA) process provides a key abstraction layer
that isolates higher level routing functionality from the
underlying operating system and forwarding engines.  This makes it
straightforward to port XORP to new hardware platforms using
software shims to protect vendor proprietary intellectual
property.
</p>

<h2><a name="appliance">XORP for Network Application Writers</a></h2>

<p>
Third-party router application development has been largely
precluded by the lack of open APIs for commercial router
platforms. XORP's extensible architecture allows router operators
to install new binary application processes that appear as
integrated parts of the router from an operational perspective.
This is enabled via XORP's inter-process communication mechanism,
combined with it's run-time extensible router-manager process and
CLI. Practically speaking, XORP enables customer choice by
de-coupling router applications from the underlying routing
platform.
</p>

<h2><a name="research">XORP for Networking Research</a></h2>

<p>
The networking research community has been hindered by the lack of an
open, production-ready platform on which to develop new technology.
Experimentation, testing and measurement are typically done via
simulation with no guarantee that results will carry over to
real-world routing.  This is where XORP comes in:
</p>

<ul>
      <li>
	XORP can be used as a platform to develop new routing
	protocols.
      </li>

      <li>
	XORP can be used as a network emulator, allowing multiple
	emulated routers to run real routing code on a single host in a
	carefully controlled environment.
      </li>

      <li>
	XORP is scriptable. Any scripting language can make calls to
	any XORP process and get back the response, allowing for novel
	uses of existing router code.
      </li>

      <li>
	XORP can be instrumented to perform measurements of traffic,
	routing messages, or practically anything else that goes on in a
	production router.
      </li>

      <li>
	XORP can &lt;insert your own ideas here&gt;!
      </li>
</ul>
